package com.devilvan.betrice.jpxgmn.service;

import com.devilvan.betrice.common.BetriceResultVo;
import com.devilvan.betrice.jpxgmn.dto.JpxgmnDetailDto;
import com.devilvan.betrice.jpxgmn.po.JpxgmnDetailPo;

import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;

/**
* @author Evad.Wu
* @Description JPXGMN-明细信息表 业务逻辑接口
* @date 2022-11-16
*/
public interface JpxgmnDetailService {
    /**
    * 保存
    *
    * @param jpxgmnDetailDto 控制层处理后的数据传输对象
    * @return 保存回调对象
    */
    JpxgmnDetailPo saveUpdate(JpxgmnDetailDto jpxgmnDetailDto);
    /**
    * 批量保存
    *
    * @param list 控制层处理后的数据传输对象集合
    * @return 保存回调对象
    */
    List<JpxgmnDetailPo> saveUpdateBatch(List<JpxgmnDetailDto> list);

    /**
     * mapper 批量更新detail
     * @param list 待更新的数据
     * @return 更新是否成功
     */
    boolean updateBatch(List<JpxgmnDetailPo> list);

    /**
     * 备用方法，将JPXGMN_DETAIL表的PIC_URL字段中的uploadfile转成Uploadfile
     */
    void updatePicUrlToUpper();

    /**
     * detail 解析报文控制器
     *
     * @param url       请求网址（带参数）
     * @param keyword   关键字
     * @param subHeader 头信息
     * @return 形式返回
     */
    CompletableFuture<BetriceResultVo<JpxgmnDetailPo>> doJpxgmnDetailRequest(String url, String keyword, Map<String, String> subHeader);
}